#include<iostream>
using namespace std;
#include<stack>
#include<list>
#include<queue>
//int main()
//{
//    stack<char> S;
//    char x, y;
//    x = 'n'; y = 'g';
//    S.push(x);
//    S.push('i');
//    S.push(y);
//
//    S.pop();
//    S.push('r'); 
//    S.push('t'); 
//    S.push(x);
//
//    S.pop();
//    S.push('s');
//
//    while (!S.empty())
//    {
//        x = S.top();
//        S.pop();
//        cout << x;
//    };
//    cout << y;
//}


//int main()
//{
//    queue<char> Q;
//    char x, y;
//    x = 'n'; y = 'g';
//    Q.push(x); 
//    Q.push('i');
//    Q.push(y);
//
//    Q.pop(); 
//    Q.push('r');
//    Q.push('t'); 
//    Q.push(x);
//
//    Q.pop(); 
//    Q.push('s');
//
//    while (!Q.empty())
//    {
//        x = Q.front();
//        Q.pop();
//        cout << x;
//    };
//    cout << y;
//}



int main()
{
	int array[] = { 1, 2, 3, 4, 0, 5, 6, 7, 8, 9 };

	int n = sizeof(array) / sizeof(int);

	list<int> mylist(array, array + n);

	auto it = mylist.begin();

	while (it != mylist.end())
	{

		if (*it != 0)
		{
			cout << *it << " ";
		}

		else
		{
			it = mylist.erase(it);
		}

		++it;
	}
	return 0;

}